/**
* @brief    多独立按键示例
* @file     main.c
* @author   何锡斌
* @email    2537274979@qq.com
* @date     2024/01/25
* @version  V1_0_0
* @par      说明：
* - 本示例为裸机示例，采用时间片轮询架构；
* - 把开关扫描分为隔离层/驱动层/应用层 对应着 XxxSwitchScan_Al/XxxSwitchScan_Driver/XxxSwitchScan_App
* - 时间片轮询架构仓库链接：https://gitee.com/wx_372d4eb42f/XxxTimeSliceOffset/tree/%E6%9C%80%E5%9F%BA%E7%A1%80%E7%9A%84%E6%97%B6%E9%97%B4%E7%89%87%E8%BD%AE%E8%AF%A2/)
* - XxxSwitchScan_Driver仓库链接：https://gitee.com/wx_372d4eb42f/xxx-switch-scan_-driver
*/
#include "./XxxTimeSlice/XxxTimeSlice.h"
#include "./XxxSwitchScan/XxxSwitchScan_App.h"
#include "stm32f10x.h"



/********************************************systick中断服务函数********************************************/
void SysTick_Handler(void)
{
	XxxTimeSlice_Produce();
}
/********************************************systick中断服务函数 End********************************************/



STR_XxxTimeSlice m_timeSlice_1;			/**< 定义时间片对象 */
/*时间片对应任务*/
void Task_1(void)
{
	SwitchDevice_Scan();				/* 开关设备扫描 */
	//return;
}



int main(void)
{
	SysTick_Config(SystemCoreClock/ 1000);					/* 配置总心跳，1ms的Tick */
	
	/*开关设备初始化*/
	SwitchDeviceInit();
	
	/*注册任务*/
	XxxTimeSlice_Register(&m_timeSlice_1, Task_1, 10);		/* 10*1ms，即10ms运行一次Task_1，那么Task_1自身的Tick为10ms */
	
	/*启动时间片轮询*/
    XxxTimeSlice_Start();
}
